#avif #av1 #heif #image-encoding #mux #width-height #bmff

avif-serialize

Minimal writer for AVIF header structure (MPEG/HEIF/MIAF/ISO-BMFF)

4 releases

0.8.1 Dec 6, 2022
0.7.7 Nov 27, 2022
0.7.6 Apr 7, 2022
0.7.5 Sep 15, 2021
0.6.4 Aug 29, 2020

#642 in Images

Download history 2842/week @ 2024-01-05 1959/week @ 2024-01-12 3015/week @ 2024-01-19 1823/week @ 2024-01-26 1670/week @ 2024-02-02 2479/week @ 2024-02-09 2545/week @ 2024-02-16 2242/week @ 2024-02-23 2328/week @ 2024-03-01 7960/week @ 2024-03-08 23562/week @ 2024-03-15 37708/week @ 2024-03-22 34349/week @ 2024-03-29 34111/week @ 2024-04-05 35451/week @ 2024-04-12 30081/week @ 2024-04-19

139,363 downloads per month
Used in 15 crates (via ravif)

BSD-3-Clause

38KB
927 lines

AVIF image serializer (muxer)

Minimal writer for AVIF header structure. This is lean, safe-Rust alternative to libavif. It creates the jungle of MPEG/HEIF/MIAF/ISO-BMFF "boxes" as appropriate for AVIF files. Supports alpha channel embedding.

Compatible with decoders in Chrome 85+, libavif v0.8.1, and Firefox 92.

Together with rav1e it allows pure-Rust AVIF image encoding.

Requirements

Usage

  1. Compress pixels using an AV1 encoder, such as rav1e. libaom works too.

  2. Call avif_serialize::serialize_to_vec(av1_data, None, width, height, 8)

See cavif for example usage.


lib.rs:

AVIF image serializer (muxer)

Usage

  1. Compress pixels using an AV1 encoder, such as rav1e. libaom works too.

  2. Call avif_serialize::serialize_to_vec(av1_data, None, width, height, 8)

See cavif for a complete implementation.

Dependencies

~66KB